#include <stdio.h>
#include <stdlib.h>
#include <math.h> 
#define max 1005

int a[max],result[max];
int GetLeftTree(int n){
	int H,X; 
	H=log2(n+1);
	X=n-(pow(2,H)-1);
	if( X>pow(2,H)/2 )
		X=pow(2,H)/2;
	return X+pow(2,H-1)-1;
}
void slove(int l,int r,int n,int t){
	if( n==0 ) return;
	if( n==1 ){
		result[t]=a[l];
		return;
	} 
	int L,R;
	L=GetLeftTree(n);
	R=n-1-L;
	result[t]=a[l+L];
	slove(l,l+L-1,L,t*2+1);
	slove(l+L+1,r,R,t*2+2);
}
int cmp(const void *a,const void *b){
	return *(int*)a-*(int*)b;
}
void input(int n){
	for( int i=0; i<n; i++ )
		scanf("%d",&a[i]);
}
void output(int n){
	int i;
	for( i=0; i<n-1; i++ )
		printf("%d ",result[i]);
	printf("%d",result[i]);
}
int main(){
	int n;
	scanf("%d",&n);
	input(n);
	qsort(a,n,sizeof(int),cmp);
	slove(0,n-1,n,0);
	output(n);
	return 0;
} 
